#ifndef TOOLS_H
#define TOOLS_H

template <T> class List
{
private:
    Element elt;
    int size;

public:
    List();
    bool IsEmpty();
    void clear();
    void Add(T e);
    void Remove(int index);
    T operator[](int index);
};

template <T> class Element
{
private:
    T elt;
    Element * previous;
    Element * next;

public:
    Element()
    {
        elt = new T();
    }
    Element(T e)
    {
        elt = e;
    }

    T Get()
    {
        return elt;
    }
    T Set(T value)
    {
        elt = value;
    }
};


#endif // TOOLS_H
